#

| Chapter 2 Simple Editing |

## 2.4 More Ways to Insert Text

You have inserted text before the cursor with the sequence:

>     itext to be inserted[ESC]

You've also inserted text after the cursor with the `a` command. There are other insert commands for inserting text at different positions relative to the cursor:

`A` | Append text to end of current line.
`I` | Insert text at beginning of line.
`o` | Open blank line below cursor for text.
`O` | Open blank line above cursor for text.
`s` | Delete character at cursor and substitute text.
`S` | Delete line and substitute text.
`R` | Overstrike existing characters with new characters.

All of these commands leave you in insert mode. After inserting text, remember to press `[ESC]` to escape back to command mode.

`A` (append) and `I` (insert) save you from having to move your cursor to the end or beginning of the line before invoking insert mode. (The `A` command saves one keystroke over `$a`. Although one keystroke might not seem like much of a saving, the more adept (and impatient) an editor you become, the more keystrokes you will want to omit.)

`o` and `O` (open) save you from having to insert a carriage return. You can type these commands from anywhere within the line.

`s` and `S` (substitute) allow you to delete a character or a whole line and replace the deletion with any amount of new text. `s` is the equivalent of the two-stroke command `c` `[SPACE]` and `S` is the same as `cc`. One of the best uses for `s` is to change one character to several characters.

`R` ("large" replace) is useful when you want to start changing text, but you don't know exactly how much. For example, instead of guessing whether to say `3cw` or `4cw`, just type `R` and then enter your replacement text.

### 2.4.1 Numeric Arguments for Insert Commands

Except for `o` and `O`, the above insert commands (plus `i` and `a`) take numeric prefixes. With numeric prefixes, you might use the commands `i`, `I`, `a`, and `A` to insert a row of underlines or alternating characters. For example, typing `50i*``[ESC]` inserts 50 asterisks, and typing `25a*-` `[ESC]` appends 50 characters (25 pairs of asterisk and hyphen). It's better to repeat only a small string of characters. vi has difficulty repeating the insertion of more than one line's worth of text.

You can use a numeric prefix with `S` to substitute several lines. It's quicker and more flexible, though, to use `c` with a movement command.

A good case for using the `s` command with a numeric prefix is when you want to change a few characters in the middle of a word. Typing `r` wouldn't be enough, but typing `cw` would change too much text. Using `s` with a numeric prefix is usually the same as typing `R`.

There are other combinations of commands that work naturally together. For example, `ea` is useful for appending new text to the end of a word. It helps to train yourself to recognize such frequent combinations so that they become automatic.

2.3 Simple Edits |  | 2.5 Joining Two Lines with J